import Datastore from 'lowdb'
import FileSync from 'lowdb/adapters/FileSync'
import path from 'path'
import fs from 'fs-extra'
//import { app, remote } from 'electron'
import LodashId from 'lodash-id';
const os = require("os")
//const home = process.env.HOME || process.env.USERPROFILE;// 这块目录好像有点问题
const home = os.homedir();
console.log(home,'地址目录',os.homedir())
const STORE_PATH = `${home}/.upload_data` // 存到用户目录

// 开发环境下路径已经存在，而在生产环境下这个路径是没有的，所以会报错，这边要创建一个
if (!fs.pathExistsSync(STORE_PATH)) {
  fs.mkdirpSync(STORE_PATH)
}
const adapter = new FileSync(path.join(STORE_PATH, '/data.json')) // 初始化lowdb读写的json文件名以及存储路径
const db = Datastore(adapter) // lowdb接管该文件
db._.mixin(LodashId) // 这是？
// 初始化数据

if(!db.has('imgList').value()){
    db.set('imgList',[]).write()
}
// CURD
const insert = (fileName,data)=>{
    db.read().get(fileName).insert(data).write()
}

const remove = (fileName,by)=>{
    db.read().get(fileName).remove(by).write();
}

const update = (fileName,by,data)=>{
    db.read().get(fileName).find(by).assign(data).write();
}

const find = (fileName,data)=>{
    if(data){
        return db.read().get(fileName).find(data).value()
    }else{
        return db.read().get(fileName).value()
    }
}
const removeAll = (fileName) =>{
    db.read().get(fileName).remove().write()
}
export default{
    insert,
    remove,
    removeAll,
    update,
    find
}